<%--  																													
	    				   jCompany Developer Suite																		
			    		Copyright (C) 2008  Powerlogic																	
	 																													
	    Este programa � licenciado com todos os seus c�digos fontes. Voc� pode modific�-los e							
	    utiliz�-los livremente, inclusive distribu�-los para terceiros quando fizerem parte de algum aplicativo 		
	    sendo cedido, segundo os termos de licenciamento gerenciado de c�digo aberto da Powerlogic, definidos			
	    na licen�a 'Powerlogic Open-Source Licence 2.0 (POSL 2.0)'.    													
	  																													
	    A Powerlogic garante o acerto de erros eventualmente encontrados neste c�digo, para os clientes licenciados, 	
	    desde que todos os c�digos do programa sejam mantidos intactos, sem modifica��es por parte do licenciado. 		
	 																													
	    Voc� deve ter recebido uma c�pia da licen�a POSL 2.0 juntamente com este programa.								
	    Se n�o recebeu, veja em <http://www.powerlogic.com.br/licencas/posl20/>.										
	 																													
	    Contatos: plc@powerlogic.com.br - www.powerlogic.com.br 														
																														
 --%>
<%@ page language="java" session="true" isThreadSafe="false"
	contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.powerlogic.jcompany.controle.PlcConstantes"%>
<%@ page
	import="com.powerlogic.jcompany.controle.cache.PlcCacheSessaoVO"%>
<%@ page import="com.powerlogic.jcompany.config.PlcConfigControleHelper"%>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt"%>
<fmt:setBundle basename="jCompanyResources" />



<link rel="shortcut icon" href="${pageContext.request.contextPath}/plc/midia/sync_icone.jpg">	

<%
	PlcCacheSessaoVO plcSessao = (PlcCacheSessaoVO) request
			.getSession().getAttribute(PlcConstantes.SESSION_CACHE_KEY);
	boolean estourouMaxTentativas = false; //flag. Marca se o mÃ¡ximo de tentativas ja foi alcanÃ§ado. bloqueando assim a pÃ¡gina de login.
	String opcaoLogin = null; //String com a opÃ§Ã£o de login declarado no web.xml.
	String StringMaxNumTentativas = null; //nÃºmero mÃ¡ximo de tentativas

	//recupera a opÃ§Ã£o de login no arquivo web.xml.
	opcaoLogin = (String) PlcConfigControleHelper.getInstance().get(
			"opcoesLogin");

	//verifica se a opÃ§Ã£o foi declarada no web.xml.
	if (opcaoLogin != null) {

		int indexVirgula = opcaoLogin.indexOf(",");

		//teste se encontrou a virgula para recuperar o nÃºmero de tentativas.
		if (indexVirgula != -1) {
			StringMaxNumTentativas = opcaoLogin
					.substring(indexVirgula + 1);

			//verifica se o valor foi declarado. "#" significa valor nÃ£o declarado.
			if (!StringMaxNumTentativas.equals("#")) {

				//casting do valor do nÃºmero mÃ¡xmo de tentativas para Long.
				try {
					Long maxNumTentativas = new Long(
							StringMaxNumTentativas);

					//verifica se a variÃ¡vel de nÃºmero de tentativas ja foi setada na sessÃ£o, se nÃ£o, setar com valor 1.
					if (request
							.getSession()
							.getAttribute(
									PlcConstantes.PROFILE.IND_NUM_TENTATIVAS_LOGIN) == null) {
						request
								.getSession()
								.setAttribute(
										PlcConstantes.PROFILE.IND_NUM_TENTATIVAS_LOGIN,
										new Long("1"));
					} else {

						Long numTent = (Long) request
								.getSession()
								.getAttribute(
										PlcConstantes.PROFILE.IND_NUM_TENTATIVAS_LOGIN);

						// Testa max tentativas de acordo com max. do web.xml.
						if (numTent.longValue() >= maxNumTentativas
								.longValue()) {
							estourouMaxTentativas = true; //nÃºmero mÃ¡ximo de tentativas alcanÃ§ado.

						} else {

							//soma e adiciona o valor na sessÃ£o
							numTent = new Long(numTent.longValue() + 1);
							request
									.getSession()
									.setAttribute(
											PlcConstantes.PROFILE.IND_NUM_TENTATIVAS_LOGIN,
											numTent);
						}

					}

				} catch (Exception e) {
				}
			}
		}
	}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR" lang="pt-BR">
<head>
<title><%=PlcConfigControleHelper.getInstance()
							.get("nomeAplicacao")%></title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link rel="StyleSheet"
	href="<%=request.getContextPath()%>/plc/css/<%=plcSessao.getPele()%>/PlcLogin.css"
	type="text/css" charset="UTF-8" />
<script type="text/javascript">
	function testaCampos()
	{
		var numForms = document.forms.length
		var numElements = 0;
		for(i=0; i < numForms; i++)
		{
			numElements = document.forms[i].elements.length
			for(j=0; j < numElements; j++)
			{
				if(document.forms[i].elements[j].type=="text")
				{
					document.forms[i].elements[j].focus();
					i = numForms;
					j = numElements;
				}
			}
		}
	}
</script>
</head>
<body scroll="no" onload="testaCampos();">
<table width="100%" height="100%" border="0" cellpadding="0"
	cellspacing="0" style="margin-top: 120px;">
	<tr>
		<td valign="middle" align="center">
		<%
			//se nÃ£o estourou o nÃºmero mÃ¡ximo de tentativas
			if (!estourouMaxTentativas) {
		%>
		<form method="post"
			action="<%=response.encodeURL("j_security_check")%>">

		<%
			if (PlcConfigControleHelper.getInstance().get(
						"logoEmpresaLogin") != null) {
					try {
		%>
		<div id="marca"><img width="400px"
			src="<%=request.getContextPath()%><%=PlcConfigControleHelper.getInstance().get(
										"logoEmpresaLogin")%>" /></div>
		<%
			} catch (Exception e) {
					}
				} else {
		%>
		<div id="marca"><img width="400px"
			src="<%=request.getContextPath()%>/midia/marca_empresa.gif" /></div>
		<%
			}
		%>

		<div class="container"><img class="alerta"
			alt="Erros nesta pï¿½gina"
			src="<%=request.getContextPath()%>/plc/midia/msgVermelho/ico.gif" />
		<div class="erro"><fmt:message
			key="jcompany.erro.senhasNaoConferem" /></div>
		</div>
		<br />
		<div class="loginContainer">
		<table width="100%" border="0" cellpadding="0" cellspacing="0">
			<tr>
				<td class="label"><fmt:message key="jcompany.login.usuario" />
				</td>
				<td><input class="loginTexto" name="j_username" type="text">
				</td>
			</tr>
			<tr>
				<td class="label"><fmt:message key="jcompany.login.senha" /></td>
				<td><input class="loginTexto" type="password" name="j_password">
				</td>
			</tr>
			<tr>
				<td class="label">&nbsp;</td>
				<td><input class="loginBotao" name="btnLogin" type="submit"
					value="Entrar"></td>
			</tr>
			<%
				if (PlcConfigControleHelper.getInstance().get("opcoesLogin") != null
							&& PlcConfigControleHelper.getInstance().get(
									"opcoesLogin").startsWith("S")) {
			%>
			<tr>
				<td>&nbsp;</td>
				<td>
				<style type="text/css">
a {
	font-family: Verdana;
	font-size: 11px;
	font-style: normal;
	font-weight: bold;
	horizontal-align: right;
	color: #FFFFFF;
}
</style>
				<a href='#'
					onclick='janela("/jcpadm/trocasenhapopup.do?evento=x"); return false;'><fmt:message
					key="jcompany.trocar.senha" /></a></td>
			</tr>
			<%
				}
			%>
		</table>
		</div>
		</form>
		<%
			} else {
		%> <br />
		<div class="container"><img class="alerta"
			alt="Erros nesta p?gina"
			src="<%=request.getContextPath()%>/plc/midia/erro_ico.gif" />
		<div class="erro"><fmt:message
			key="jcompany.erros.estourouNumeroMaximoTentativas.parte1" /> <%=StringMaxNumTentativas%>
		<fmt:message
			key="jcompany.erros.estourouNumeroMaximoTentativas.parte2" /></div>
		</div>
		<br />
		<div class="loginContainer"><input onclick="fecharJanela()"
			class="loginBotao" name="btnFecharJanela" type="button"
			value='<fmt:message key="jcompany.login.ok"/>'></div>
		<%
			}
		%>
		</td>
	</tr>
</table>
</body>
</html>
